numTests = int(input())
for i in range(numTests):
numNumber = int(input())
seq = list(map(int, input().split()))
seq.sort()
lastNum = -1
seqMex = []
rest = []
for j in range(len(seq)):
actual = seq[j]
if(lastNum != actual):
seqMex.append(actual)
else:
rest.append(actual)
lastNum = actual
for k in range(len(seqMex)):
if(k > 0):
print(" ", end="")
print(seqMex[k], end="")
for l in range(len(rest)):
print(" ", end="")
print(rest[l], end="")
print("")
#include <iostream>
using namespace std;
#include <vector>
#include <set>
#include <algorithm>
int main(){
int t;
cin >> t;
while(t--){
int n,a;
cin >> n;
set<int> s;
vector<int> v;
for(int i = 0; i < n; i++){
cin >> a;
if(s.find(a) == s.end()) s.insert(a);
else v.push_back(a);
}
for(auto it:s){
cout << it << " ";
}
sort(v.begin(),v.end());
for(auto it: v){
cout << it << " ";
}
cout << endl;
}
}
1711D - Rain | 534A - Exam |
1472A - Cards for Friends | 315A - Sereja and Bottles |
1697C - awoo's Favorite Problem | 165A - Supercentral Point |
1493A - Anti-knapsack | 1493B - Planet Lapituletti |
747B - Mammoth's Genome Decoding | 1591C - Minimize Distance |
1182B - Plus from Picture | 1674B - Dictionary |
1426C - Increase and Copy | 520C - DNA Alignment |
767A - Snacktower | 1365A - Matrix Game |
714B - Filya and Homework | 31A - Worms Evolution |
1691A - Beat The Odds | 433B - Kuriyama Mirai's Stones |
892A - Greed | 32A - Reconnaissance |
1236D - Alice and the Doll | 1207B - Square Filling |
1676D - X-Sum | 1679A - AvtoBus |
1549A - Gregor and Cryptography | 918C - The Monster |
4B - Before an Exam | 545B - Equidistant String |